<?php declare(strict_types=1);

namespace Zyucv7\Core\Web\Response;

use Zyucv7\Core\Web\Response;
use Zyucv7\Core\Web\Exceptions\ResponseException;

/**
 * 重定向 响应类
 * 
 * 提供便捷的方法来生成和发送重定向格式的 HTTP 响应
 */

class RedirectResponse {
    
    /**
     * 创建重定向响应
     * 
     * @param string $url
     * @param int $statusCode
     * @return void
     */
    public static function jump(string $url): void
    {
        if (!filter_var($url, FILTER_VALIDATE_URL)) {
            throw ResponseException::InvalidArgument("Invalid redirect URL: {$url}");
        }

        $resp = Response::instance();
        $resp->setStatusCode(302);
        $resp->setContent('');
        $resp->addHeader('Location', $url);
        $resp->send(true);
    }
    
}